import xlrd


class ExcelUtil(object):
    def __init__(self, execl_path, sheet_name):
        # 获取execl信息

        self.data = xlrd.open_workbook(execl_path)
        # 获取sheet页
        self.table = self.data.sheet_by_name(sheet_name)
        # 获取第一行的值，即key值
        self.keys = self.table.row_values(0)
        # 获取总行数
        self.rowNum = self.table.nrows
        # 获取总列数
        self.colNum = self.table.ncols

    def dict_data(self):
        '''方式一'''
        if self.rowNum <= 1:
            print("总行数小于1")
        else:
            r = []
            j = 1
            for i in range(self.rowNum - 1):
                s = {}
                # 从第二行取对应values值,获取第j行的values的数组列表
                values = self.table.row_values(j)
                for x in range(self.colNum):
                    # 依次获取每一行的键值对
                    s[self.keys[x]] = values[x]
                r.append(s)
                j += 1
            return r

    def dict_data2(self):
        '''方式二'''
        r = []

        for i in range(1, self.rowNum):
            r.append(dict(zip(self.keys, self.table.row_values(i))))
        return r

    def write_execl(self, row, col, value):
        self.table.cell(row, col).value(value)








